/*
 * Copyright (c) 2025 Li Auto Inc. and its affiliates
 * Licensed under the Apache License, Version 2.0(the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*!*********************************************************************************************************************
 * @file        nm_cfg.h
 * @brief       Nm 配置头文件
 * @details     主要包含 Nm 动态配置项
 * @date        {{get_generation_time()}}
 * @toolversion {{get_vcos_version()}}
 **********************************************************************************************************************/

#ifndef NM_CFG_H
#define NM_CFG_H

#ifdef __cplusplus
extern "C"
{
#endif

#define NM_USER_DATA_ENABLED                ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmUserDataEnabled" ) }}) ///< 定义是否启用Nm用户数据功能
#define NM_PDU_RX_INDICATION_ENABLED        ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmPduRxIndicationEnabled" ) }}) ///< 定义是否启用PDU接收指示功能
#define NM_STATE_CHANGE_IND_ENABLED         ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmStateChangeIndEnabled" ) }}) ///< 定义是否启用状态变化指示功能
#define NM_COM_CONTROL_ENABLED              ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmComControlEnabled" ) }}) ///< 定义是否启用通信控制功能
#define NM_VERSION_INFO_ENABLED             ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalProperties,  "NmVersionInfoApi" ) }}) ///< 定义是否启用版本信息API
#define NM_DEV_ERROR_DETECT                 ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalProperties,  "NmDevErrorDetect" ) }}) ///< 定义是否启用开发错误检测

#define NM_COORDINATOR_SUPPORT_ENABLE       ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmCoordinatorSupportEnabled" ) }}) ///< 定义是否启用Nm协调器支持
#define NM_COORDINATOR_SYNCSUPPORT          ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmCoordinatorSyncSupport" ) }}) ///< 定义是否启用Nm协调器同步支持
#define NM_CAR_WAKEUP_RX_ENABLED            ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmCarWakeUpRxEnabled" ) }}) ///< 定义是否启用车辆唤醒接收功能
#define NM_REMOTE_SLEEP_IND_ENABLED         ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmRemoteSleepIndEnabled" ) }}) ///< 定义是否启用远程睡眠指示功能
#define NM_REPEAT_MSG_IND_ENABLED           ({{ gen_switch_macro(nm_config.NmGlobalConfig.NmGlobalFeatures,  "NmRepeatMsgIndEnabled" ) }}) ///< 定义是否启用重复消息指示功能

#define NmConf_NmChannelConfig_NmChannelConfig	((network_handle_type)0) ///< Nm通道配置标识符 对应ComM主通道配置

#define NM_CHANNEL_COUNT ({{ ComM_Channel | length }}u) ///< 定义Nm通道数量 基于ComM通道配置

#ifdef __cplusplus
}
#endif

#endif /*NM_CFG_H*/
